#pragma once

#include <QObject>
#include "DButils.h"
#include "define.h"
#include <QList>
#include "Pacs_Patient.h"
#include "Pacs_Report.h"
#include "Pacs_User.h"

class DBOperate : public QObject
{
	Q_OBJECT
public:

	static DBOperate * GetKernel();
	static void DestroyKernel();
	bool DBconnect();
	QList<CheckPart>  getCheckPartList();
	QList<PartModel>  getPartModelList();
	QList<CheckType>  getCheckTypeList();
	QList<CheckPart>  getShowCheckPart();
	QList<CheckPart>  getUserCheckPart();
	QList<Pacs_Patient*> getSertchResPatient(quint64 srartTime,
		quint64 endTime,
		const QString &strName,
		const QString & strCheckNum,
		bool isDianXing = false,
		bool isBenDiZhenShi = true,
		bool isMyReport=true);
	void  UpdatePatientImage(const QString& strCheckNum,const QString& strFileList);
	void  CreateNewPatient(Pacs_Patient* currentPatient);
	void  CreatePatientNewReport(const QString& strPatientId,const QString& checkNum);
	void  UpdatePatientReport(Pacs_Report* patientReport);
	void  UpdateReportPath(const QString& strCheckNum,const QString& strFilePath);
	void  getCurrentPatientOrderNum();
	void  updateTodayOrderNumConfig();
	void  GetTodayAllPatient();
	void  GetNoCheckPatient();
	void  GetTodayHangUpPatient();
	void  GetTodayAllCheckedPatient();
	void  UpdatePatientCheckStatus(const QString& strCheckNum,PatientStatus status);
	void  GetPatientReprotInfo(Pacs_Patient *patient);
	Pacs_User* onLogin(const QString& strAccount,const QString& strPwd);

private:
	DBOperate();
	~DBOperate();
	DButils *m_dbUtil;
	static DBOperate * m_instance;
	
};
